A video sequence comprises of a plurality of frames being consecutively displayed at a certain frame rate. For example, a movie may be displayed at 24 Hz i.e. 24 frames per second or a video on television according to NTSC standards may be displayed at 30 Hz i.e. 30 frames per second. These video frames are represented by a grid of pixel values to display intensity and color on the viewer's screen. The frames of a video sequence may be classified under three categories namely Intra-frames or I-frames, Predictive frames or P-frames and Bi-directional frames or B-frames, as mentioned under MPEG-2 standard. I-frames are the frames encoded in the same manner as still images and contain sufficient information to display an entire image. P-frames use previous reference frames to determine what the current frame will be by recording changes between a previous frame and the current frame. Whereas B-frames use previous and subsequent frames to determine what the current frame will be. Typically, an interlaced video consists of two fields that make up each video frame. Each field contains half the number of horizontal lines in the frame; the top field contains all of the odd-numbered lines, and the bottom field contains all of the even-numbered lines. An interlaced video monitor displays each frame by first drawing all of the lines in one field and then drawing all of the lines in the other field.
The video is encoded and then compressed before transmission or storage because a video can require an enormous amount of digital storage if left uncompressed. A video may be compressed based on video compression formats such as MPEG-2 Part 2, MPEG-4 Part 2, H.264 (MPEG-4 Part 10), HEVC, Theora, Dirac, RealVideo RV40, VP8, and the like. In most of the compression standards or block based encoding formats, the video frame is divided into macroblocks. A macroblock is a group of pixels, for example a macroblock could be a matrix of 16 pixels×16 pixels. These macroblocks are encoded using transforms such as Discrete Cosine Transform (DCT), which essentially represents the data inside the block as the sum of various patterns or frequencies. While compressing, the video sequence is first sampled and then quantized. During the quantization step, the less required frequencies, or the less prominent patterns can be disregarded, and hence almost the similar representation of the block is achieved. Moreover, the compressed video may also be transmitted via channel such as a wireless channel that may be error prone. In any case, if any bit is corrupted during compression or during transmission, the corrupt bit may corrupt the entire information inside the block while decoding of the video frame. Due to the corrupted block, taking inverse of the DCT transform will result into absurd patterns in the block and hence causing perceivable corrupted blocks, which are known as block errors. Further, compressed video is easily afflicted by transmission errors, mainly because the information content of compressed video is generally coded using variable length codes. When a bit error alters the codeword to another one of different length, the decoder loses synchronization and decodes consecutive error free blocks incorrectly until the next synchronization code is received. The corrupted bitstream may heavily degrade the visual quality of any one or more individual frames or pictures.
Block error is one of the various types of errors that may be present in digital videos using compression techniques due to certain error in the DCT coefficients. The error may also be present in videos being transferred using error prone channels. In yet other cases, the error may even occur in videos while being transcoded from one video format to another. Hence, a block error may be present in videos present in various different formats. The block error is perceived in the form of corrupted blocks scattered all over the frame, sparsely or densely, and may persist over multiple frames, the corrupted block contains random high frequency corrupted data which cannot be corrected but can only be detected in a frame. The block errors may be generally viewed by a viewer as a checkerboard pattern/grid pattern or vertically lined blocks. To limit the degradations in frames caused by compression, error detection and/or error correction methods can be applied, retransmissions can be used, and/or effects from the received corrupted data can be concealed. Normally retransmissions provide a reasonable way to protect data streams from errors, but long round-trip delays associated with low bit-rate transmission and moderate or high error rates make it practically impossible to use retransmission, especially with real-time videophone applications. Error detection and correction methods usually require a large overhead since they add some redundancy to the data. One of the available methods extracts edges from an image that correspond to the DCT blocks. Such edges are processed to determine an edge energy value. The edge energy value is compared with a threshold to provide an alarm for an error block when the threshold is exceeded. The edge energies for each block may be summed and compared with an overall threshold value to generate the alarm, or the edge energy for each edge may be compared with an edge threshold value to determine which are good and which are suspect, with the alarm being set when at least three of the edges are suspect. However, the method does not detect the presence of block errors in video stream effectively.
Video standards may not provide for block error detection or concealment in the event of a corrupted bit stream. Hence, there exists a need for effective and generic systems and methods for detecting block errors in faulty video frames. Further, there is also a need for methods and systems for block error detection that are independent of the video format and the video encoding methodology.